<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>渐变</title>
    <style>
        /*不能在里面设置宽高*/
        canvas{

            border: 1px solid black;
            transition: 2s linear;
        }
    </style>
</head>
<body>
<button id="bt">点击绘画</button>
<hr>

</body>


<script>
    const canvas = document.createElement('canvas');
    document.body.append(canvas)
    canvas.width = 600
    canvas.height = 400
    const ctx = canvas.getContext('2d')

    const geneateCanvas = () => {
        //https://developer.mozilla.org/zh-CN/docs/Web/API/CanvasGradient 渐变
        const radialGradient = ctx.createRadialGradient(100, 100, 0, 100, 100, 100);
        //0开始1结束,线性渐变从红色到蓝色
        radialGradient.addColorStop(0,'red')
        radialGradient.addColorStop(1,'blue')
        //因为不是画线，所以要fillStyle
        ctx.fillStyle = radialGradient;
        ctx.fillRect(0, 0, 200, 200);

        //暂停2s后重新绘制
        setTimeout(() => {
            //第一个参数是弧度值,后面是圆心,qq浏览器不支持
            //锥心渐变是以某点位圆心，顺时针角度开始渐变到角度，这里参数是其实角度，即原点开始45度开始渐变，最后到蓝色
            const conicGradient = ctx.createConicGradient(90 * (Math.PI / 180), 100, 100);
            conicGradient.addColorStop(0,'red')
            conicGradient.addColorStop(1,'blue')
            ctx.fillStyle = conicGradient;
            ctx.fillRect(0, 0, 200, 200);
        }, 2000);


    }

    const button = document.getElementById('bt');
    button.addEventListener('click',geneateCanvas)



</script>
</html>